﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections.ObjectModel;

namespace Vista.Sistema
{
    public partial class FormMateriaPrima : Form
    {
        
        string tipo_operacion;

        public FormMateriaPrima(string modo)
        {
            InitializeComponent();
             tipo_operacion = modo;
        }

        Entidades.Sistema.MateriaPrima oMateriaPrimas;
        private Entidades.Sistema.TipoMateriaPrima oTip;
        private Entidades.Sistema.Unidad oUnidad;

        public FormMateriaPrima(string modo, Entidades.Sistema.MateriaPrima oMateriaPrima)
        {
            InitializeComponent();
            oMateriaPrimas = oMateriaPrima;
            tipo_operacion = modo;
            if (tipo_operacion == "Modificar")
            {
                
                txtCodigoMP.Text = oMateriaPrimas.cod_materiaprima.ToString();
                txtPrecioMP.Text = oMateriaPrimas.tipoMateriaPrima.ToString();
                textNombre.Text = oMateriaPrimas.nombre;
                txtDemandaAnualMP.Text = oMateriaPrimas.demanda_anual.ToString();

             }
        }

        private bool validardatos()
        {
            //if (this.txtCodigoMP.Text.Trim() == "")
            //{
            //    MessageBox.Show("Debe ingresar un Codigo");
            //    txtCodigoMP.Focus();
            //    return false;
            //}
            if (this.textNombre.Text.Trim() == "")
            {
                MessageBox.Show("Debe ingresar un nombre");
                    textNombre.Focus();
                return false;
            }
            return true;
        }

        private void btnguardar_Click_1(object sender, EventArgs e)
        {
            if (validardatos())
            {
                if (tipo_operacion == "Nuevo")
                {
                    Entidades.Sistema.MateriaPrima oMateriaPrima = new Entidades.Sistema.MateriaPrima();
                    Entidades.Sistema.TipoMateriaPrima oTipoMateriaPrima = new Entidades.Sistema.TipoMateriaPrima();
                    Entidades.Sistema.Unidad oUnidad = new Entidades.Sistema.Unidad();

                    oTipoMateriaPrima = (Entidades.Sistema.TipoMateriaPrima)cBoxtipos.SelectedItem;
                    oUnidad = (Entidades.Sistema.Unidad)cBoxUnidad.SelectedItem;
                    oMateriaPrima.nombre = textNombre.Text;
                    oMateriaPrima.precio_unitario = Convert.ToDecimal(txtPrecioMP.Text);
                    oMateriaPrima.tipoMateriaPrima = oTipoMateriaPrima;
                    oMateriaPrima.unidad = oUnidad; ;
                    oMateriaPrima.demanda_anual = Convert.ToInt16(txtDemandaAnualMP.Text);


                    bool respuesta = Controladora.Sistema.CUGestionarMateriaPrima.ObtenerInstancia().AgregarMatprima(oMateriaPrima, oTipoMateriaPrima, oUnidad);
                    if (respuesta == true)
                    {
                        MessageBox.Show("La materia prima se agrego correctamente");
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("Codigo Existente");
                        txtCodigoMP.Text = null;
                        txtCodigoMP.Focus();
                    }
                }
                else if (tipo_operacion == "Modificar")
                {
                    Entidades.Sistema.MateriaPrima oMateriaPrima = new Entidades.Sistema.MateriaPrima();
                    Entidades.Sistema.TipoMateriaPrima oTipoMateriaPrima = new Entidades.Sistema.TipoMateriaPrima();
                    Entidades.Sistema.Unidad oUnidad = new Entidades.Sistema.Unidad();

                    oTipoMateriaPrima = (Entidades.Sistema.TipoMateriaPrima)cBoxtipos.SelectedItem;
                    oUnidad = (Entidades.Sistema.Unidad)cBoxUnidad.SelectedItem;
                    oMateriaPrima.nombre = textNombre.Text;
                    oMateriaPrima.precio_unitario = Convert.ToDecimal(txtPrecioMP.Text);
                    oMateriaPrima.tipoMateriaPrima = oTipoMateriaPrima;
                    oMateriaPrima.unidad = oUnidad; ;
                    oMateriaPrima.demanda_anual = Convert.ToInt16(txtDemandaAnualMP.Text);
                    Controladora.Sistema.CUGestionarMateriaPrima.ObtenerInstancia().ModificarMatprima(oMateriaPrima, oTipoMateriaPrima, oUnidad);
                    this.Close();
                }
            }
        }

        private void FormMateriaPrima_Load(object sender, EventArgs e)
        {
            textNombre.Focus();
            cargaCombosDeSeleccion();
            textNombre.Focus();
        }

        private void cargaCombosDeSeleccion()
        {
            int codigo;
            //Cargamos el campo de tipos 
            BindingList<Entidades.Sistema.TipoMateriaPrima> bslTipoMatPrima = new BindingList<Entidades.Sistema.TipoMateriaPrima>();
            ReadOnlyCollection<Entidades.Sistema.TipoMateriaPrima> coltipo;
            coltipo = Controladora.Sistema.CUGestionarTipoMateriaPrima.ObtenerInstancia().ConsultarTipoMateriaprima();
            oTip = new Entidades.Sistema.TipoMateriaPrima();
            //Entidades.Sistema.TipoMateriaPrima oTip = new Entidades.Sistema.TipoMateriaPrima();
            //Ver!!!!!
            oTip.cod_tipo_materiaprima = 0;
            oTip.nombre = "Seleccione Tipo";
            bslTipoMatPrima.Add(oTip);

            foreach (Entidades.Sistema.TipoMateriaPrima oTip1 in coltipo)
            {
                bslTipoMatPrima.Add(oTip1);
            }

            cBoxtipos.DataSource = bslTipoMatPrima;
            this.cBoxtipos.DisplayMember = "nombre";

            //Cargamos el campo de unidad 
            BindingList<Entidades.Sistema.Unidad> bslunidad = new BindingList<Entidades.Sistema.Unidad>();
            ReadOnlyCollection<Entidades.Sistema.Unidad> colunidad;
            colunidad = Controladora.Sistema.CUGestionarUnidad.ObtenerInstancia().ConsultarUnidadTT();
            oUnidad = new Entidades.Sistema.Unidad();
            //Entidades.Sistema.TipoMateriaPrima oTip = new Entidades.Sistema.TipoMateriaPrima();
            //Ver!!!!!
            oUnidad.cod_unidad = 0;
            oUnidad.nombre = "Seleccione Unidad";
            bslunidad.Add(oUnidad);

            foreach (Entidades.Sistema.Unidad ounidad1 in colunidad)
            {
                bslunidad.Add(ounidad1);
            }

            cBoxUnidad.DataSource = bslunidad;
            this.cBoxUnidad.DisplayMember = "nombre";
            textNombre.Focus();
    }

        private void btncancelar_Click(object sender, EventArgs e)
        {
            limpiacontroles();

        }

        private void limpiacontroles()

        {
            textNombre.Text = "";
            txtPrecioMP.Text = "";
            textNombre.Focus();
        }

        private void textNombre_Enter(object sender, EventArgs e)
        {
            txtPrecioMP.Focus();
        }

     
}
}